package org.jsola.hr.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import org.jsola.core.dto.BaseDTO;

import static org.jsola.hr.example.TransferAccountsBankBatchExample.E_AGREE_NO;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.E_BATCH_ID;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.E_BATCH_ORD_REMARK;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.E_BSTT;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.E_BUSI_TYPE;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.E_BUSS_FLOW_NO;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.E_CURRENCY;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.E_HOST_BUSINESS_NO;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.E_HOST_FLOW_NO;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.E_OTH_BANK_FLAG;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.E_PAY_TYPE;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.E_SETTLE_TYPE;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.E_SRC_ACC_NO;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.E_THIRD_VOUCHER;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.E_TOTAL_AMOUNT;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.E_TOTAL_NUM;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.M_AGREE_NO_MAX;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.M_BATCH_ID_MAX;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.M_BATCH_ORD_REMARK_MAX;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.M_BSTT_MAX;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.M_BUSI_TYPE_MAX;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.M_BUSS_FLOW_NO_MAX;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.M_CURRENCY_MAX;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.M_HOST_BUSINESS_NO_MAX;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.M_HOST_FLOW_NO_MAX;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.M_OTH_BANK_FLAG_MAX;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.M_PAY_TYPE_MAX;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.M_SETTLE_TYPE_MAX;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.M_SRC_ACC_NO_MAX;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.M_THIRD_VOUCHER_MAX;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.M_TOTAL_AMOUNT_MAX;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.M_TOTAL_NUM_MAX;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.N_AGREE_NO;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.N_BATCH_ID;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.N_BATCH_ORD_REMARK;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.N_BSTT;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.N_BUSI_TYPE;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.N_BUSS_FLOW_NO;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.N_CURRENCY;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.N_HOST_BUSINESS_NO;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.N_HOST_FLOW_NO;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.N_OTH_BANK_FLAG;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.N_PAY_TYPE;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.N_SETTLE_TYPE;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.N_SRC_ACC_NO;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.N_THIRD_VOUCHER;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.N_TOTAL_AMOUNT;
import static org.jsola.hr.example.TransferAccountsBankBatchExample.N_TOTAL_NUM;

/**
 * 转账批次(平安银行)
 *
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "新增【转账批次(平安银行)】的参数")
@Data
public class TransferAccountsBankBatchAddDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = N_BATCH_ID, example = E_BATCH_ID)
    @Length(max = 32, message = M_BATCH_ID_MAX)
    private String batchId;

    @ApiModelProperty(notes = N_THIRD_VOUCHER, example = E_THIRD_VOUCHER)
    @Length(max = 20, message = M_THIRD_VOUCHER_MAX)
    private String thirdVoucher;

    @ApiModelProperty(notes = N_AGREE_NO, example = E_AGREE_NO)
    @Length(max = 50, message = M_AGREE_NO_MAX)
    private String agreeNo;

    @ApiModelProperty(notes = N_BUSI_TYPE, example = E_BUSI_TYPE)
    @Length(max = 5, message = M_BUSI_TYPE_MAX)
    private String busiType;

    @ApiModelProperty(notes = N_PAY_TYPE, example = E_PAY_TYPE)
    @Length(max = 1, message = M_PAY_TYPE_MAX)
    private String payType;

    @ApiModelProperty(notes = N_CURRENCY, example = E_CURRENCY)
    @Length(max = 3, message = M_CURRENCY_MAX)
    private String currency;

    @ApiModelProperty(notes = N_SRC_ACC_NO, example = E_SRC_ACC_NO)
    @Length(max = 20, message = M_SRC_ACC_NO_MAX)
    private String srcAccNo;

    @ApiModelProperty(notes = N_TOTAL_NUM, example = E_TOTAL_NUM)
    @Length(max = 10, message = M_TOTAL_NUM_MAX)
    private String totalNum;

    @ApiModelProperty(notes = N_TOTAL_AMOUNT, example = E_TOTAL_AMOUNT)
    @Length(max = 20, message = M_TOTAL_AMOUNT_MAX)
    private String totalAmount;

    @ApiModelProperty(notes = N_SETTLE_TYPE, example = E_SETTLE_TYPE)
    @Length(max = 1, message = M_SETTLE_TYPE_MAX)
    private String settleType;

    @ApiModelProperty(notes = N_BATCH_ORD_REMARK, example = E_BATCH_ORD_REMARK)
    @Length(max = 100, message = M_BATCH_ORD_REMARK_MAX)
    private String batchOrdRemark;

    @ApiModelProperty(notes = N_BUSS_FLOW_NO, example = E_BUSS_FLOW_NO)
    @Length(max = 32, message = M_BUSS_FLOW_NO_MAX)
    private String bussFlowNo;

    @ApiModelProperty(notes = N_BSTT, example = E_BSTT)
    @Length(max = 1, message = M_BSTT_MAX)
    private String bstt;

    @ApiModelProperty(notes = N_OTH_BANK_FLAG, example = E_OTH_BANK_FLAG)
    @Length(max = 1, message = M_OTH_BANK_FLAG_MAX)
    private String othBankFlag;

    @ApiModelProperty(notes = N_HOST_FLOW_NO, example = E_HOST_FLOW_NO)
    @Length(max = 32, message = M_HOST_FLOW_NO_MAX)
    private String hostFlowNo;

    @ApiModelProperty(notes = N_HOST_BUSINESS_NO, example = E_HOST_BUSINESS_NO)
    @Length(max = 32, message = M_HOST_BUSINESS_NO_MAX)
    private String hostBusinessNo;


}

